※NACL: Network Access Control List
Virtual Private Cloud,虛擬私有網路,類似網路環境中的子網域
VPC 擁有以下幾點特性:
單一 Region 中,橫跨所有 Availability Zone
Availability Zone 可建立一個或多個子網路
子網路 (Subnet) 只能存在於單一 Availability Zone
預設 VPC 之間無法彼此互連
子網路可設定多個公網段 (Public Subnet) 跟 私網段 (Private Subnet)
預設 VPC 私網段內部的機器無法直接對外
每個子網路都會配置 NACL 防火牆
最常見的網路拓樸圖如下:
常見的有以下四種對接方式:
在預設情況下,Private Subnet 的機器無法連外網。
因此有可能需要安裝一些套件的時候,是無法安裝的。
這時候就需要透過 NAT Gateway
,可參考以下架構圖。
正常情況下,如果 VPC 內部網路需要存取 AWS Service 時,是需要走外網去存取 AWS Service 的。如下圖 Instance 需要存取 S3 需要走 Internet 去做存取。

當 VPC 內部的主機需要跟這些服務溝通時會走外網,但是聽起來有點繞遠路。
同樣都是 AWS 的服務,為什麼需要特地繞出去 AWS 再回到 AWS?
這時候可以透過 VPC Endpoint
讓 VPC 內的機器可以 以內網的方式 與 AWS 服務串接,如下圖。

前面有提到,在預設情況下。VPC 之間是沒辦法互相連線,只能走外網存取其他 AWS VPC。如下:

但是公司內可能會有多個部門,分別都使用獨立的 VPC,若需要做資料共享
一樣同樣都是 AWS 的服務,不能走更快速的方式直接連線嗎?
這時候我們可以使用 Peering Connection
將兩個子網段進行配對,透過內部網路存取其他 AWS VPC,如下:

通常建立雲端環境不會馬上把所有服務直接轉換至雲端
或是因為一些資安限制,只能從公司網路去進行佈署 AWS 服務或是存取資料。
可以參考以下網路拓樸圖:

Internet Gateway
Route Table
Network access control list
NAT Gateway
VPC Endpoint
Peering Connection
VPN Connection
Customer Gateway
可使用 VPC Flog Logs 追查網路流量。
另外可以將資料內容發佈到 CloudWatch Logs 或 Amazon S3。